package com.loop.unclelend.utils.helper

import com.loop.unclelend.app_config.UncleConfigs
import com.loop.unclelend.utils.SPUtils


/**
 * UncleLend
 * @Author wwdeng
 * @CreateTime: 2024/9/2 10:59
 * @Annotation：SharedPreferences 数据存取帮助类
 */
object SharedHelper {

    /**
     * SharedPreferences 保存 KEY
     */
    object UNCLE_SPKEY{
        
        /**
         * App 转发时区 Key
         */
        const val UNCLE_TIMEZONE = "${UncleConfigs.UNCLE_APPNAME}_TimeZone"
        
        /**
         * App 转发时区 区号  Key
         */
        const val UNCLE_TIMEZONE_CODE = "${UncleConfigs.UNCLE_APPNAME}_TimeZone_Code"

        /**
         * 业务APP 配置请求
         */
        const val UNCLE_COMMON = "${UncleConfigs.UNCLE_APPNAME}_Common"

        /**
         * 用户登录状态
         */
        const val UNCLE_LOGIN = "${UncleConfigs.UNCLE_APPNAME}_isLogin"

        /**
         * 用户id（userId）
         * 登录接口获取 VH7vqSZFdCIj0qGuSRAZw
         */
        const val UNCLE_USERID = "${UncleConfigs.UNCLE_APPNAME}_UserId"

        /**
         * 用户Token
         * 登录接口获取 VH7vqSZFdCIj0qGuSRAZw
         */
        const val UNCLE_TOKEN = "${UncleConfigs.UNCLE_APPNAME}_Token"

        /**
         * 用户号码
         * 登录页面获取
         */
        const val UNCLE_MOBILE = "${UncleConfigs.UNCLE_APPNAME}_Mobile"

        /**
         * 是否是渠道用户
         * 登录接口获取
         */
        const val UNCLE_IS_ADSOURCE = "${UncleConfigs.UNCLE_APPNAME}_isAdSource"

        /**
         * 是否是审核账号
         * 登录时保存
         */
        const val UNCLE_IS_CONFIG_ACCOUNT = "${UncleConfigs.UNCLE_APPNAME}_isConfigAccount"

        /**
         * 用户流程状态
         */
        const val UNCLE_PROCESS = "${UncleConfigs.UNCLE_APPNAME}_Process"

        /**
         * 坦桑地区，是否选择过语言
         */
        const val UNCLE_TANZANIA_LANGUAGE = "${UncleConfigs.UNCLE_APPNAME}_Tanzania_Language"

        /**
         * 自定义数据
         */
        const val UNCLE_CUSTOM_DATA = "${UncleConfigs.UNCLE_APPNAME}_Custom_Data"

        /**
         * Active Dialog Show Num
         */
        const val UNCLE_DIALOG_ACTIVE_NUM = "${UncleConfigs.UNCLE_APPNAME}_Dialog_Active_Num"

        /**
         * Normal Dialog Show Num
         */
        const val UNCLE_DIALOG_NORMAL_NUM = "${UncleConfigs.UNCLE_APPNAME}_Dialog_Normal_Num"

        /**
         *  guide dialog show
         */
        const val UNCLE_DIALOG_GUIDE_SHOW = "${UncleConfigs.UNCLE_APPNAME}_Dialog_Guide"
    }

    /**
     * 保存数据
     */
    fun saveUncleSPData(key: String,value: Any){
        SPUtils.put(key,value)
    }

    /**
     * 获取String
     */
    fun getUncleSPString(key: String): String{
        return SPUtils.getString(key)
    }

    /**
     * 获取boolean
     */
    fun getUncleSPBoolean(key: String): Boolean{
        return SPUtils.getBoolean(key,false)
    }

    /**
     * 获取Int
     */
    fun getUncleSPInt(key: String): Int{
        return SPUtils.getInt(key,0)
    }

    /**
     * 移除指定内容
     */
    fun removeUncleData(key: String){
        SPUtils.remove(key)
    }

    /**
     * 退出登录，移除用户信息
     */
    fun onUncleLoginOut(){
        //移除已登录状态
        removeUncleData(UNCLE_SPKEY.UNCLE_LOGIN)
        //移除用户Token
        removeUncleData(UNCLE_SPKEY.UNCLE_TOKEN)
        //移除用户id
        removeUncleData(UNCLE_SPKEY.UNCLE_USERID)
        removeUncleData(UNCLE_SPKEY.UNCLE_MOBILE)
        removeUncleData(UNCLE_SPKEY.UNCLE_IS_ADSOURCE)
        removeUncleData(UNCLE_SPKEY.UNCLE_PROCESS)
        removeUncleData(UNCLE_SPKEY.UNCLE_CUSTOM_DATA)
        removeUncleData(UNCLE_SPKEY.UNCLE_TANZANIA_LANGUAGE)
    }
}